package com.skyline.spot.service;

import java.util.List;

import com.skyline.base.type.Activity;
import com.skyline.common.bean.Page;
import com.skyline.spot.model.SpotCharacteristic;

public interface SpotCharacteristicService {
	/**
	 * 
	 * @param spotId
	 *            所属spot的Id
	 * @param spotName
	 *            名字
	 * @param spotPortrait
	 *            头像
	 * @param ownerId
	 *            地主id
	 * @param ownerNickname
	 *            地主名
	 * @param ownerPortrait
	 *            地主头像
	 * @param creatorId
	 *            创建者 id
	 * @param creatorNickName
	 *            创建者名
	 * @param creatorPortrait
	 *            创建者头像
	 * @param charateristicTile
	 *            特色标题
	 * @param charateristicDetail
	 *            特色描述
	 * @param consume
	 *            大约消费额度
	 * @return
	 */
	public Long addCharacteristic(Long spotId, String spotName,
			String spotPortrait, Long ownerId, String ownerNickname,
			String ownerPortrait, Long creatorId, String creatorNickName,
			String creatorPortrait, String charateristicTile,
			String charateristicDetail, Integer consume);

	/**
	 * 
	 * @param sc
	 * @return
	 */
	public SpotCharacteristic addCharacteristic(SpotCharacteristic sc);

	/**
	 * 管理员/地主可以对特色进行修改
	 * 
	 * @param id
	 * @param charateristicTile
	 * @param charateristicDetail
	 */
	public void updateCharacteristic(Long id, String charateristicTile,
			String charateristicDetail);

	/**
	 * 修改特色的头像，实际上为特色相册的封面
	 * @param id
	 * @param portrait
	 */
	public void updateCharacteristic(Long id, String portrait);

	/**
	 * 改变改特色的状态
	 * 
	 * @param id
	 * @param activity
	 */
	public void updateCharacteristic(Long id, Activity activity);

	/**
	 * 特色评分
	 * 
	 * @param scId
	 *            特色ID
	 * @param star
	 *            星级
	 */
	public SpotCharacteristic votes(Long scId, Integer star);

	/**
	 * 查找同一spotId所有特色
	 * 
	 * @param spotId
	 * @param activity
	 * @return
	 */
	public List<SpotCharacteristic> queryCharacteristicBySpotId(Long spotId,
			Page page, Activity activity);

	/**
	 * 根据ID精确查找
	 * 
	 * @param id
	 * @param activiy
	 * @return
	 */
	public SpotCharacteristic queryCharacteristicById(Long id, Activity activiy);

}
